package br.eng.eliseu.gwt.gestaoWeb.server.util;

import java.io.File;
import java.io.FilenameFilter;

public class EnviromentUtil {

	private static final String VARIAVEL_HOME = "GRP_HOME";
	
	public static String getGrpHome() throws Exception {
		String caminhoBase = System.getenv(VARIAVEL_HOME);
		if (caminhoBase == null) {
			throw new Exception("Variável de ambiente "+VARIAVEL_HOME+" não definida.");
		}
		if (!(caminhoBase.endsWith("\\") || caminhoBase.endsWith("/"))) {
			caminhoBase = caminhoBase + System.getProperty("file.separator");
		}
		return caminhoBase;
	}

	public static File getGrpHomeDir() throws Exception{
		String caminhoBase = getGrpHome();
		File grpHome = new File(caminhoBase);
		if(!grpHome.isDirectory()){
			throw new Exception("Variável de ambiente "+caminhoBase+" aponta para um diretório que não existe");
		}
		return grpHome;
	}

	public static File getFileCaseInsensitive(File homeDir,final  String fileName) {
		if(homeDir==null){
			return null;
		}
		if(fileName==null || fileName.trim().equals("")){
			return null;
		}
		if(!homeDir.exists()){
			return null;
		}
		File[] files = homeDir.listFiles(new FilenameFilter() {
			
			public boolean accept(File dir, String name) {
				return name.toUpperCase().equals(fileName.toUpperCase());
			}
		});
		if(files.length>0){
			return files[0];
		}
		return null;
	}
}
